var DataType = {
    toString: function(v, format) {
        if (!format) {
            return JSON.stringify(v);
        } else if (format === 'rgb') {
            if ('a' in v) {
                return 'rgba(' + v.r + ',' + v.g + ',' + v.b + ',' + v.a + ')';
            } else {
                return 'rgb(' + v.r + ',' + v.g + ',' + v.b + ')';
            }
        } else if (format === 'hex') {
            var r = v.r.toString(16);
            var g = v.g.toString(16);
            var b = v.b.toString(16);
            if (r.length === 1) {
                r = '0' + r;
            }
            if (g.length === 1) {
                g = '0' + g;
            }
            if (b.length === 1) {
                b = '0' + b;
            }
            return "#" + r + g + b;
        }
    },
    parse: function(v) {
        if (typeof v === 'string') {
            v = JSON.parse(v);
        }
        if (isFinite(v.r) && isFinite(v.g) && isFinite(v.b)) {
            return v;
        } else {
            gg.error('datatype error');
        }
    }
};

module.exports = DataType;